浅谈训练型AI服务器之魅力所在
验“金”室
文 / 工商银行大数据与人工智能实验室 郭振宇
一、背景介绍
1
AI服务器产生背景
众所周知,深度学习发展至今已有50多年的历史,直到2016年AlphaGo战胜围棋顶尖高手李世石,掀起了人工智能浪潮,如今深度学习在各行各业已经得到广泛的应用。
深度学习应用的崛起,并不是偶然,之前已经有了充分的理论依据,只是因为当时的计算能力不足,无法完成模型的训练。2016年随着英伟达公司AI芯片P40的发布,搭载P40的AI服务器为深度学习提供强大的算力,能够保证在可接受的时间内完成模型训练,促进了深度学习算法往更复杂的方向发展。
AI服务器是指搭载GPU、FPGA以及AISC等不同类型AI芯片的服务器,根据使用场景可分为训练型AI服务器和推理型AI服务器。训练型AI服务器主要搭载V100、A100、P40等高端的GPU卡;推理型AI服务器主要搭载T4等低端的GPU卡或搭载FGPA、ASIC芯片。
随着深度学习的不断发展,搭载P40的单机双卡AI服务器,已经无法满足最新深度学习算法的性能要求。为满足算法的性能要求,单机8卡以上(含8卡)的训练型AI服务器迅速发展起来。
2
训练型AI服务器发展历程
随着深度学习模型的复杂度不断增加,训练数据不断增加,对模型分布式训练性能要求也在不断提升,因此对AI服务器在单芯片算力、芯片之间的通信带宽提出了更高的要求,训练型AI服务器也在不断地推陈出新,其发展历程如下:
训练型AI服务器发展历程
三、核心技术
1
原理简介
深度学习的分布式训练性能取决于AI芯片算力、通信带宽,如图1所示。当AI芯片完成第t+1次计算,但是第t次的计算结果尚未完成传输,此时通信带宽成为了性能瓶颈;反之,当第t次的计算结果已经完成传输,但是第t+1次的计算尚未完成,此时算力就成为了性能瓶颈。
图1 深度学习的分布式训练
因此,AI服务器的设计既要保证AI芯片的高算力,也要保证AI芯片间的通信高带宽。训练型AI服务器配置最新架构的AI芯片,以保证高算力;通信带宽由AI芯片连接方式决定,AI芯片通过以下三种方式互连:专用主板、PCI-e、网卡。其中,专用主板提供的带宽最高,网卡提供的带宽最低。训练型AI服务器适配AI芯片专用主板、高带宽网卡避免因AI芯片的低效通信影响性能。
2
算力
随着纳米技术的不断发展,相同大小的AI芯片可集成更多的计算单元,AI算力在快速提升。目前最新款AI芯片A100单卡可提供的单精度算力最高是312.5TFLOPS,是2016年发布的P40的26倍,2017年发布的V100的22倍;半精度算力最高是625TFLOPS,是其2016年发布的P40的26倍,2017年发布的V100的5倍,如图2所示。
图2 最新款AI芯片算力对比
3
带宽
使用AI芯片专用主板对单节点的AI芯片进行纵向扩容(SCALE-UP),保证AI芯片间通信带宽最高,使中高复杂度模型训练性能达到最佳。
适配AI芯片专用高性能RDMA网卡,通过横向扩容(SCALE-OUT),保证跨节点AI芯片间的通信高带宽,使超高复杂度模型的提升训练性能达到最佳。
配套高性能RDMA网卡支持存算分离,避免因存储容量不足进行AI服务器的横向扩展,同时减少存算分离带来的性能影响。
(1)AI芯片专用主板
训练型AI服务器配套AI芯片专用主板,支持8块AI芯片互连,其架构如图3(英伟达NV-LINK架构)、图4(华为HCCS架构)所示。通过该方式连接各AI芯片,最高提供600GB/s的通信带宽,是PCI-e提供带宽的20倍,是100GE网卡提供带宽的25倍,此时AI芯片间的通信带宽不会成为性能瓶颈。
图3 英伟达NV-LINK架构
图4 华为HCCS架构
(2)AI芯片专用网卡
训练型AI服务器适配更多可适配8块支持200GE的RDMA网卡,提升跨节点AI芯片的通信性能,减少因网络带宽导致的性能损失。其架构如图5(英伟达DGX A100架构,图中的NIC即是网卡,平均每块GPU适配200GE网卡)、图6(华为Atlas 800架构,绿色模块表示NPU,每块NPU都配套100GE网卡)所示:
图5 英伟达DGX A100架构
图6 华为Atlas 800架构
(3)存算分离用网卡
业界一般采用存算分离方案解耦计算与存储,在模型训练时会增加计算节点和存储节点的数据交互,导致网络带宽将成为性能瓶颈。训练型AI服务器配套高性能RDMA网卡,减少因存算分离方案带来的性能损失。
三、训练性能
1
单节点性能
训练型AI服务器单节点训练性能可以达到单机单卡性能的数倍以上。以目前最为典型的ResNet50为例,训练时间由天级别缩短为小时级别:单机单卡的训练时间需要1天3小时(即27小时);华为Atlas800(单节点配置8块Atlas300-9000)训练时间为2.5小时;英伟达DGX A100(单节点配置8块A100)训练时间为4小时。
2
集群性能
由训练型AI服务器组成超算集群性能可以达到单机单卡性能的数百倍以上。以目前最为典型的ResNet50为例,模型训练时间由天级别缩短为分钟级别:单机单卡的训练时间需要1天3小时(即1620分钟);根据最新MLperf打榜数据,华为Atlas900集群(由512块Atlas300-9000组成的集群)训练时间为1.56分钟;英伟达SuperPod集群(由768块A100组成的集群)训练时间为1.06分钟。
3
性能曲线
利用训练型AI服务器(集群)进行分布式训练,能够明显提升模型的训练性能。但不是AI服务器数量越多越性能越好,当某个训练任务使用的AI服务器数量达到一定的规模时,其性能反而会下降,如图7所示。
图7 训练型AI服务器的性能曲线
四、总结
训练型AI服务器不仅单节点计算性能强,由其组成的集群保证了计算性能曲线趋近于线性加速,大大缩短模型训练时间,对深度学习领域起到至关重要的作用。基于训练型AI服务器搭建的集群或者通过公有云资源租用,可以为企业的人工智能需求赋能,加速人工智能应用落地,为企业创造超额利润。
更多精彩内容
FCC30+
长按左边二维码
关注我们不迷路